213fcbf32433a4ad39eb45535fd096ad05093e90,portlets/web-form-portlet/docroot/WEB-INF/src/com/liferay/webform/action/ConfigurationActionImpl.java,ConfigurationActionImpl,processAction,#PortletConfig#ActionRequest#ActionResponse#,47
Before Change
String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
if (!cmd.equals(Constants.UPDATE)) {
return;
}
String title = ParamUtil.getString(actionRequest, "title");
String description = ParamUtil.getString(actionRequest, "description");
boolean requireCaptcha = ParamUtil.getBoolean(
actionRequest, "requireCaptcha");
String successURL = ParamUtil.getString(actionRequest, "successURL");
boolean sendAsEmail = ParamUtil.getBoolean(
actionRequest, "sendAsEmail");
String subject = ParamUtil.getString(actionRequest, "subject");
String emailAddress = ParamUtil.getString(
actionRequest, "emailAddress");
boolean saveToDatabase = ParamUtil.getBoolean(
actionRequest, "saveToDatabase");
boolean saveToFile = ParamUtil.getBoolean(actionRequest, "saveToFile");
String fileName = ParamUtil.getString(actionRequest, "fileName");
boolean updateFields = ParamUtil.getBoolean(
actionRequest, "updateFields");
String portletResource = ParamUtil.getString(
actionRequest, "portletResource");
PortletPreferences preferences =
PortletPreferencesFactoryUtil.getPortletSetup(
actionRequest, portletResource);
if (Validator.isNull(title)) {
SessionErrors.add(actionRequest, "titleRequired");
}
if (Validator.isNull(subject)) {
SessionErrors.add(actionRequest, "subjectRequired");
}
if (!sendAsEmail && !saveToDatabase && !saveToFile) {
SessionErrors.add(actionRequest, "handlingRequired");
}
if (sendAsEmail) {
if (Validator.isNull(emailAddress)) {
SessionErrors.add(actionRequest, "emailAddressRequired");
}
else if (!Validator.isEmailAddress(emailAddress)) {
SessionErrors.add(actionRequest, "emailAddressInvalid");
}
}
if (saveToFile) {
// Check if server can create a file as specified
try {
FileOutputStream fos = new FileOutputStream(fileName, true);
fos.close();
}
catch (SecurityException es) {
SessionErrors.add(actionRequest, "fileNameInvalid");
}
catch (FileNotFoundException fnfe) {
SessionErrors.add(actionRequest, "fileNameInvalid");
}
}
if (!SessionErrors.isEmpty(actionRequest)) {
return;
}
preferences.setValue("title", title);
preferences.setValue("description", description);
preferences.setValue("requireCaptcha", String.valueOf(requireCaptcha));
preferences.setValue("successURL", successURL);
preferences.setValue("sendAsEmail", String.valueOf(sendAsEmail));
preferences.setValue("subject", subject);
preferences.setValue("emailAddress", emailAddress);
preferences.setValue("saveToDatabase", String.valueOf(saveToDatabase));
preferences.setValue("saveToFile", String.valueOf(saveToFile));
preferences.setValue("fileName", fileName);
if (updateFields) {
int i = 1;
String databaseTableName = WebFormUtil.getNewDatabaseTableName(
portletResource);
preferences.setValue("databaseTableName", databaseTableName);
int[] formFieldsIndexes = StringUtil.split(
ParamUtil.getString(actionRequest, "formFieldsIndexes"), 0);
for (int formFieldsIndex : formFieldsIndexes) {
String fieldLabel = ParamUtil.getString(
actionRequest, "fieldLabel" + formFieldsIndex);
if (Validator.isNull(fieldLabel)) {
continue;
}
String fieldType = ParamUtil.getString(
actionRequest, "fieldType" + formFieldsIndex);
boolean fieldOptional = ParamUtil.getBoolean(
actionRequest, "fieldOptional" + formFieldsIndex);
String fieldOptions = ParamUtil.getString(
actionRequest, "fieldOptions" + formFieldsIndex);
String fieldValidationScript = ParamUtil.getString(
actionRequest, "fieldValidationScript" + formFieldsIndex);
String fieldValidationErrorMessage = ParamUtil.getString(
actionRequest,
"fieldValidationErrorMessage" + formFieldsIndex);
if ((Validator.isNotNull(fieldValidationScript) ^
(Validator.isNotNull(fieldValidationErrorMessage)))) {
SessionErrors.add(
actionRequest, "invalidValidationDefinition" + i);
}
preferences.setValue("fieldLabel" + i, fieldLabel);
preferences.setValue("fieldType" + i, fieldType);
preferences.setValue(
"fieldOptional" + i, String.valueOf(fieldOptional));
preferences.setValue("fieldOptions" + i, fieldOptions);
preferences.setValue(
"fieldValidationScript" + i, fieldValidationScript);
preferences.setValue(
After Change
String portletResource = ParamUtil.getString(
actionRequest, "portletResource");
PortletPreferences preferences =
PortletPreferencesFactoryUtil.getPortletSetup(
actionRequest, portletResource);
if (Validator.isNull(title)) {
SessionErrors.add(actionRequest, "titleRequired");
}
if (Validator.isNull(subject)) {
SessionErrors.add(actionRequest, "subjectRequired");
}
if (!sendAsEmail && !saveToDatabase && !saveToFile) {
SessionErrors.add(actionRequest, "handlingRequired");
}
if (sendAsEmail) {
if (Validator.isNull(emailAddress)) {
SessionErrors.add(actionRequest, "emailAddressRequired");
}
else if (!Validator.isEmailAddress(emailAddress)) {
SessionErrors.add(actionRequest, "emailAddressInvalid");
}
}
if (saveToFile) {
// Check if server can create a file as specified
try {
FileOutputStream fos = new FileOutputStream(fileName, true);
fos.close();
}
catch (SecurityException es) {
SessionErrors.add(actionRequest, "fileNameInvalid");
}
catch (FileNotFoundException fnfe) {
SessionErrors.add(actionRequest, "fileNameInvalid");
}
}
if (!SessionErrors.isEmpty(actionRequest)) {
return;
}
preferences.setValue("title", title);
preferences.setValue("description", description);
preferences.setValue("requireCaptcha", String.valueOf(requireCaptcha));
preferences.setValue("successURL", successURL);
preferences.setValue("sendAsEmail", String.valueOf(sendAsEmail));
preferences.setValue("subject", subject);
preferences.setValue("emailAddress", emailAddress);
preferences.setValue("saveToDatabase", String.valueOf(saveToDatabase));
preferences.setValue("saveToFile", String.valueOf(saveToFile));
preferences.setValue("fileName", fileName);
if (updateFields) {
int i = 1;
Locale defaultLocale = LocaleUtil.getDefault();
String defaultLanguageId = LocaleUtil.toLanguageId(defaultLocale);
String databaseTableName = WebFormUtil.getNewDatabaseTableName(
portletResource);
preferences.setValue("databaseTableName", databaseTableName);
int[] formFieldsIndexes = StringUtil.split(
ParamUtil.getString(actionRequest, "formFieldsIndexes"), 0);
for (int formFieldsIndex : formFieldsIndexes) {
Map<Locale, String> fieldLabelMap =
LocalizationUtil.getLocalizationMap(
actionRequest, "fieldLabel" + formFieldsIndex);
if (Validator.isNull(fieldLabelMap.get(defaultLocale))) {
continue;
}
String fieldType = ParamUtil.getString(
actionRequest, "fieldType" + formFieldsIndex);
boolean fieldOptional = ParamUtil.getBoolean(
actionRequest, "fieldOptional" + formFieldsIndex);
Map<Locale, String> fieldOptionsMap =
LocalizationUtil.getLocalizationMap(
actionRequest, "fieldOptions" + formFieldsIndex);
String fieldValidationScript = ParamUtil.getString(
actionRequest, "fieldValidationScript" + formFieldsIndex);
String fieldValidationErrorMessage = ParamUtil.getString(
actionRequest,
"fieldValidationErrorMessage" + formFieldsIndex);
if ((Validator.isNotNull(fieldValidationScript) ^
(Validator.isNotNull(fieldValidationErrorMessage)))) {
SessionErrors.add(
actionRequest, "invalidValidationDefinition" + i);
}
for (Locale locale : fieldLabelMap.keySet()) {
String languageId = LocaleUtil.toLanguageId(locale);
String fieldLabelValue = fieldLabelMap.get(locale);
String fieldOptionsValue = fieldOptionsMap.get(locale);
if (Validator.isNotNull(fieldLabelValue)) {
LocalizationUtil.setPreferencesValue(
preferences, "fieldLabel" + i, languageId,
fieldLabelValue);
}
if (Validator.isNotNull(fieldOptionsValue)) {
LocalizationUtil.setPreferencesValue(
preferences, "fieldOptions" + i, languageId,
fieldOptionsValue);
}
}